package com.suixun.dao.devicemanage;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.suixun.entity.DeviceInfo;
import com.suixun.entity.Devicelist;
import com.suixun.entity.LogOperation;
import com.suixun.entity.StdPeopleinfo;
import com.suixun.entity.page.PageModel;

/**
 * 
 * @author wb-limeng.g
 *
 */
public interface DeviceServiceDAO {

	/**
	 * 查询设备列表
	 */
	List<DeviceInfo> queryDevice(Map<String, Object> map);

	List<DeviceInfo> queryDevicelistPage(PageModel page);

	DeviceInfo queryDeviceById(@Param("id") Integer id);

	int updateDeviceListById(Map<String, Object> map);

	int updateDevicelistByImei(Map<String, Object> map);

	/**
	 * 删除std_deviceinfo
	 */
	int deleteDeviceInfo(String imei);

	/**
	 * 删除devicelists
	 */
	int deleteDeviceLists(String imei);

	/**
	 * 删除std_objectinfo
	 */
	int deleteObjectInfo(String imei);

	/**
	 * 更新std_iot_device表中的学校为空，status置为未使用
	 */
	int updateDevice(Devicelist device);

	/**
	 * 
	 * <p>
	 * Title: updateDeviceInfo
	 * </p>
	 * <p>
	 * 功能描述:修改std_deviceinfo中的mdtid
	 * </p>
	 * 
	 * @param map
	 * @return
	 */
	Integer updateDeviceInfo(Map<String, Object> map);

	Integer updateMdtid(Map<String, Object> map);

	/**
	 * 
	 * <p>
	 * Title: addDeviceList
	 * </p>
	 * <p>
	 * 功能描述:添加数据到devicelists表
	 * </p>
	 * 
	 * @param map
	 * @return
	 */
	int addDeviceList(Map<String, Object> map);

	/**
	 * 查询总行数
	 */
	Integer countRows(PageModel page);

	int modifyDevicePhone(DeviceInfo info);

	int modifyCardId(DeviceInfo info);

	int modifyEndTime(DeviceInfo info);

	int modifyDeviceListEndTime(DeviceInfo info);

	List<LogOperation> queryDeviceHistoryPage(PageModel page);

	Integer countHistoryRows(PageModel page);

	/**
	 * @author 陈显强 条件查询设备
	 */
	List<DeviceInfo> queryDeviceListByParam(PageModel page);

	/**
	 * @author 陈显强 条件查询设备总行数
	 * @param page
	 * @return
	 */
	Integer countDeviceRowsByParam(PageModel page);

	/**
	 * 修改devicelists表
	 * 
	 * @param map
	 * @return
	 */
	Integer updateDeviceList(Map<String, Object> map);

	/**
	 * 修改设备中学校名称
	 * 
	 * @param map
	 * @return
	 */
	Integer updateSchool(Map<String, Object> map);

	List<StdPeopleinfo> getPeopleListByCardId(String cardId);

	List<StdPeopleinfo> getPeopleListByObjectId(Integer objectid);
	
	List<DeviceInfo> getDeviceListByParam(Map<String,Object> map);
}
